import os#引入os库


def get_all_filepath(path):#得到每一个py文件的具体路径
    list = []
    for file in os.listdir(path):
        if os.path.splitext(file)[1]=='.py':#如果要计算c语言文件的函数，可以加相应的判断。（但我电脑中没有c语言的文件，所以只写了py）
            list.append(path +'/'+file)
    return list


def get_rows(file):
    with open(file,encoding='utf8') as f:#打开文件，encoding='utf8'编码格式为UTF-8格式。
        #计算文件中的行数，注释行数，空格行数
        lines = f.readline()
        rows = len(lines)
        vv =0
        space =0
        for line in lines:
            if line =='\n':
                space +=1
            if line[0]=="#":
                vv+=1
        date ={
            'rows':rows,
            'vv':vv,
            'space':space
        }
    return date


def run(path):#主程序，对结果进行输出
    file_list = get_all_filepath(path)

    all_rows =0
    all_vuui=0
    all_space= 0

    for file in file_list:
        date = get_rows(file)
        print("正在计算",file)
        rows = date.get( 'rows')
        vv = date.get('vv')
        space = date.get('space')
        all_rows += rows
        all_space +=space
        all_vuui +=vv
    print('所有代码的行数：{}\n其中包括的注释行数：{}\n其中空格行数：{}'.format(all_rows, all_vuui, all_space))



path = r'C:\Users\王俊杰\Desktop\python'#输入对应文件夹路径
run(path)
